﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using Turnero.DAOs;
using Turnero.Entidades;

namespace Turnero.Profesional
{
    public partial class frmGestionarModifcarProfesional : Form
    {
       
        Int32 banderaPantalla;
        Turnero.Principal frmPadre;
        public frmGestionarModifcarProfesional()
        {
            InitializeComponent();
            mostrarTodosLosProfesionales();
            cbxFiltro.SelectedIndex = 0;
            txtApellidos.Focus();
        }

        public frmGestionarModifcarProfesional(Turnero.Principal frm, Int32 bandera)
        {
            InitializeComponent();
            banderaPantalla = bandera;
            frmPadre = frm;
            //mostrarTodosLosProfesionales();
            cbxFiltro.SelectedIndex = 0;
            txtApellidos.Focus();
        }

        private void cbxFiltro_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (cbxFiltro.Text.Equals("Apellidos y nombres"))
            {
                lblMatricula.Enabled = false;                
                lblApellidos.Enabled = true;
                lblNombres.Enabled = true;
                txtApellidos.Text = "";
                txtNombres.Text = "";
                txtMP.Text = "";
                txtMP.Enabled = false;                
                txtApellidos.Enabled = true;
                txtNombres.Enabled = true;
                txtApellidos.Focus();
            }

            if (cbxFiltro.Text.Equals("Matricula profesional"))
            {
                lblMatricula.Enabled = true;
                lblApellidos.Enabled = false;
                lblNombres.Enabled = false;
                txtApellidos.Text = "";
                txtNombres.Text = "";
                txtMP.Text = "";
                txtMP.Enabled = true;
                txtApellidos.Enabled = false;
                txtNombres.Enabled = false;
                txtMP.Focus();
            }
        }

        private void frmGestionarModifcarProfesional_Load(object sender, EventArgs e)
        {
            
        }

        private void txtMP_TextChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroMP();
            gridProfesionales.AutoResizeColumns();
        }

        private void cargarTablaConFiltroMP()
        {
            DAO_Profesionales dp = new DAO_Profesionales();
            DataTable dt = new DataTable();

            String mp;
            mp = txtMP.Text;
            
            dt = dp.dameProfesionalesPorMP(mp);
            gridProfesionales.DataSource = dt;

            setHeaders();
        }

        private void setHeaders()
        {
            gridProfesionales.Columns[0].HeaderText = "ID Prof.";
            gridProfesionales.Columns[1].HeaderText = "M.P.";
            gridProfesionales.Columns[2].HeaderText = "Apellidos";
            gridProfesionales.Columns[3].HeaderText = "Nombres";
            gridProfesionales.Columns[4].HeaderText = "Tipo Doc.";
            gridProfesionales.Columns[5].HeaderText = "Nro. Doc.";
            gridProfesionales.Columns[6].HeaderText = "Domicilio";
            gridProfesionales.Columns[7].HeaderText = "Localidad";
            gridProfesionales.Columns[8].HeaderText = "Sexo";
            gridProfesionales.Columns[9].HeaderText = "Fecha Nac.";
            gridProfesionales.Columns[10].HeaderText = "Telefono";
            gridProfesionales.Columns[11].HeaderText = "Celular";
            gridProfesionales.Columns[12].HeaderText = "Email";
            gridProfesionales.Columns[13].HeaderText = "Cuit/Cuil";
            gridProfesionales.Columns[14].HeaderText = "Observaciones";
            gridProfesionales.Columns[15].HeaderText = "Fec. Alta Sist.";
            

        }

        private void txtApellidos_TextChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroApeNom();
            gridProfesionales.AutoResizeColumns();
        }

        private void txtNombres_TextChanged(object sender, EventArgs e)
        {
            cargarTablaConFiltroApeNom();
            gridProfesionales.AutoResizeColumns();
        }

        private void cargarTablaConFiltroApeNom()
        {
            DAO_Profesionales dp = new DAO_Profesionales();
            DataTable dt = new DataTable();

            String ape, nom;
            ape = txtApellidos.Text;
            nom = txtNombres.Text;

            dt = dp.dameProfesionalesPorNombreYApellido(ape, nom);
            gridProfesionales.DataSource = dt;

            setHeaders();

        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            Turnero.Profesional.frmAltaProfesional ap = new Turnero.Profesional.frmAltaProfesional();
            ap.ShowDialog();
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            string cod, mat, ape, nom, tipodoc, nrodoc, domicilio, localidad, sexo, fechanac, tel, cel, email, cuit, obs, fechaAlta, especialidad;
            cod = gridProfesionales.CurrentRow.Cells[0].Value.ToString();
            mat = gridProfesionales.CurrentRow.Cells[1].Value.ToString();
            ape = gridProfesionales.CurrentRow.Cells[2].Value.ToString();
            nom = gridProfesionales.CurrentRow.Cells[3].Value.ToString();
            tipodoc = gridProfesionales.CurrentRow.Cells[4].Value.ToString();
            nrodoc = gridProfesionales.CurrentRow.Cells[5].Value.ToString();
            domicilio = gridProfesionales.CurrentRow.Cells[6].Value.ToString();
            localidad = gridProfesionales.CurrentRow.Cells[7].Value.ToString();
            sexo = gridProfesionales.CurrentRow.Cells[8].Value.ToString();
            fechanac = gridProfesionales.CurrentRow.Cells[9].Value.ToString();
            tel = gridProfesionales.CurrentRow.Cells[10].Value.ToString();
            cel = gridProfesionales.CurrentRow.Cells[11].Value.ToString();
            email = gridProfesionales.CurrentRow.Cells[12].Value.ToString();
            cuit = gridProfesionales.CurrentRow.Cells[13].Value.ToString();
            obs = gridProfesionales.CurrentRow.Cells[14].Value.ToString();
            fechaAlta = gridProfesionales.CurrentRow.Cells[15].Value.ToString();
            especialidad = gridProfesionales.CurrentRow.Cells[16].Value.ToString();

            Turnero.Entidades.Profesional profesional = new Turnero.Entidades.Profesional(cod, mat, ape, nom, tipodoc, nrodoc, domicilio, localidad, sexo, fechanac, tel, cel, email, cuit, obs, fechaAlta);

            Turnero.Profesional.frmModificarProfesional mp = new Turnero.Profesional.frmModificarProfesional(profesional);
            mp.ShowDialog();
        }

        public void mostrarTodosLosProfesionales()
        {
            gridProfesionales.DataSource = null;
            DAO_Profesionales dp = new DAO_Profesionales();
            DataTable dt = new DataTable();

            dt = dp.dameTodosLosProfesionales();
            gridProfesionales.DataSource = dt;
            setHeaders();
            gridProfesionales.AutoResizeColumns();
            gridProfesionales.Refresh();
        }

        private void frmGestionarModifcarProfesional_Activated(object sender, EventArgs e)
        {
            mostrarTodosLosProfesionales();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            Int32 idprof;
            idprof = Convert.ToInt32(gridProfesionales.CurrentRow.Cells[0].Value);
            if (MessageBox.Show("Está seguro que desea eliminar el profesional?", "Eliminación del Profesional",
                    MessageBoxButtons.YesNo, MessageBoxIcon.Question)
                    == DialogResult.Yes)
            {
                DAO_Profesionales dp = new DAO_Profesionales();
                bool resultado;
                resultado = dp.BorrarProfesional(idprof);
                if (resultado == true)
                {
                    MessageBox.Show("El profesional ha sido eliminado con éxito");
                }
                else
                {
                    MessageBox.Show("El profesional no pudo ser eliminado");
                }
            }
            mostrarTodosLosProfesionales();
        }

        private void gridProfesionales_CellContentDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            
        }

        private void gridProfesionales_DoubleClick(object sender, EventArgs e)
        {
            if (frmPadre != null)
            {
                Turnero.Entidades.Profesional pr;
                String mpPrest;
                mpPrest = gridProfesionales[1, gridProfesionales.CurrentRow.Index].Value.ToString();
                DAO_Profesionales dp = new DAO_Profesionales();
                pr = dp.dameProfesionalesPorMPObj(mpPrest);

                if (banderaPantalla == 1)
                {
                    frmPadre.idPre = Convert.ToInt32(pr.Cod);
                    frmPadre.llenarCampos(pr);

                }
                this.Close();
            }
        }

        
      

    }
}
